package com.guigu.health.dao;

import com.guigu.health.pojo.*;

import java.util.List;

import org.apache.ibatis.annotations.Param;

public interface MenuMapper {
    long countByExample(MenuExample example);

    int deleteByExample(MenuExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Menu record);

    int insertSelective(Menu record);

    List<Menu> selectByExample(MenuExample example);

    Menu selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Menu record, @Param("example") MenuExample example);

    int updateByExample(@Param("record") Menu record, @Param("example") MenuExample example);

    int updateByPrimaryKeySelective(Menu record);

    int updateByPrimaryKey(Menu record);

    /**
     * 查询全部
     *
     * @return
     */
    List<Menu> queryAll(@Param("account") String account);

    /**
     * 根据id查询它的子菜单
     *
     * @return
     */
    List<Menu2> queryAllByID(@Param("id") Integer id);

    /**
     * 根据父元素id查询它是否父元素
     *
     * @param parentID
     * @return
     */
    List<Menu2> queryAllParent(@Param("parentID") Integer parentID);

    /**
     * 显示菜单
     *
     * @return
     */
    List<MenuParentTree> queryAllMenu();

    /**
     * 显示父菜单中的子菜单
     *
     * @param parentID
     * @return
     */
    List<MenuChildTree> queryChildAll(@Param("parentID") Integer parentID);

    /**
     * 查单删除
     *
     * @param roleID
     */
    void deleteMenu(@Param("roleID") Integer roleID);

    /**
     * 添加角色和菜单之间的关系
     *
     * @param roleID
     * @param menuID
     */
    void addRoleMenu(@Param("roleID") Integer roleID, @Param("menuID") Integer menuID);

    /***
     * 根据父id查询它的子元素ID
     * @param id
     * @return
     */
    List<Integer> findMenuChildByMenuParent(@Param("id") Integer id);
}